﻿using System;
using System.Collections.Generic;
using System.Text;
using Sys = Cosmos.System;
using Cosmos.Hardware.BlockDevice;


namespace ArkadiaOsKernel
{
    public class Kernel : Sys.Kernel
    {
        Core.Filesystem.Fat.FileSupport fatc = new Core.Filesystem.Fat.FileSupport();
        protected override void BeforeRun()
        {
            Core.Filesystem.Vfs.Disk Cdrive = new Core.Filesystem.Vfs.Disk("C");
            var ramcap = Cosmos.Core.CPU.GetAmountOfRAM();
            string ramget = (ramcap + 2).ToString();
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Arkadia Os a bien demarrer !");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("L'ordinateur dispose de " + ramget + " mo de ram.");
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("Initialisation des fichiers de la Ram 'C' ...");
            Cdrive.Start();
            Core.Filesystem.Vfs.HardDrive.Drive.AddDisk(Cdrive);
            Core.Filesystem.Vfs.HardDrive.Drive.GetDisk("C").AddFile("test1", "Voici la premiere application creer sur la memoire ram à l'initialisation de la ram 'C'.", ".txt", "Fichier texte de test du système de fichier");
            Core.Filesystem.Vfs.HardDrive.Drive.GetDisk("C").AddFile("code", "Code Prive il s'ouvre grace au compilateur asharp.", ".Asharp", "Fichier code Asharp de test du système de fichier");
            Core.Filesystem.Vfs.HardDrive.Drive.GetDisk("C").AddFile("helloworld", "Salut Tous le monde.", ".txt", "Fichier texte de test du système de fichier");
            Core.Filesystem.Vfs.HardDrive.Drive.GetDisk("C").AddFile("bonjourworld", "Bonjour tous le monde je suis une application.", ".app", "Application de test du système de fichier");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("Les fichiers de la Ram 'C' sont initialisés !");

        }
        protected override void Run()
        {

            Core.Shell.Command com = new Core.Shell.Command();
            com.com();
        }
        public static void save()
    {
       
    }
       
    }
}
